A programmable logic switch is a device that is used in field programmable gate arrays (FPGAs) and the like that need to reconfigure arithmetic processing circuits and wiring circuits, and can switch on and off the logic switch in accordance with data stored in a memory. The memory is a volatile memory, such as a static random-access memory (SRAM). The data in such a volatile memory disappears when the power is turned off. Therefore, when power is supplied, data needs to be written again into the memory.
A known memory for programmable logic switches is a nonvolatile memory including nonvolatile memory devices as the memory elements. The nonvolatile memory devices may be flash-memory devices, one-time programmable (OTP) memory devices, or the like. In any of the nonvolatile memories, however, a certain degree of variation appears in the results of writing, though the writing is performed under the same conditions. To prevent or reduce the variation, a flash-memory device performs additional writing. There are several known methods for performing such additional writing. However, an additional circuit is required to implement any of these methods, resulting in a complicated memory peripheral circuit configuration.